<?php
//命名空间
namespace Admin\Controller;
//调用类库
use Think\Controller;
class ProductsController extends PublicController {
	
	
  	
	private $cateMode;
	private $proModel;
	//private $toolContr;
	function  __construct(){
		parent::__construct();
		$this->cateMode=D("category");//事先实例化一个有模型文件的model，数据库表名category=实例化的名
		$this->proModel=M("product");//实现实例化一个没有模型文件的model，
		//$this->toolContr=new ToolController();
	}
	
	
	
	
	/**
	 * 产品管理列表      ajax分页 
	 * Enter description here ...
	 */
    public function index(){
    	$currpage=I("get.page")?I("get.page"):1;
    	$perpage=5;
    	$count= $this->proModel->count();// 查询满足要求的总记录数
    	$Page = new \Think\AjaxPage($count,$currpage,$perpage);// 实例化分页类 传入总记录数和每页显示的记录数(25)
    	$Page->pageMax=5;
    	$pageArray=$Page->getCounts();
    	// 进行分页数据查询 注意limit方    	法的参数要使用Page类的属性
    	$list = $this->proModel->order('id')->limit($pageArray['pageOffset'],$perpage)->select();
    	$this->assign('list',$list);// 赋值数据集
    	$this->assign('pageArray',$pageArray);// 赋值分页输出
    	$this->view('index');
  	}
	
	
  	
  	
  	
  	
  	/**
     * 产品添加                                    库存未实现---------------
     * Enter description here ...
     */
    public function add(){
    	
		   
    	if(!empty($_POST))
    	{
    		$fileinfo=uploadImg();//上传图片
    		$prodes=$_POST['des']; //编辑区的编辑内容 
    		
    		//略缩图，添加水印。
    		$image = new \Think\Image();//实例化类库
    		$image->open(C('UPLOAD_DIR').$fileinfo['pic']['savepath'].$fileinfo['pic']['savename']);//open打开图像，
    		$image->water(C('WATER_PIC'),5)->thumb(100, 100)->save(C('THUNB_DIR').$fileinfo['pic']['savename']);//water添加图片水印   ，，，使用crop和save方法完成裁剪图片功能，，使用thumb方法生成缩略图 。            
    		$propic=C('UPLOAD_DIR').$fileinfo['pic']['savepath'].$fileinfo['pic']['savename']; //把图片的完整路径（从根路径开始）赋值给$propic。。如Public/Uploads/2014-11-08/545cec88a4411.jpg这样的路径   
    		
    		
    		//获取表单提交的数据 保存到数组里  
    		$product_post=array(
    				'name'=>I('post.name'),
    				'brand_id'=>I('post.brand_id'),
    				//'datetime'=>time(),          //返回当前Unix时间，时间戳
    				'shop_price'=>I('post.shop_price'),
    				'market_price'=>I('post.market_price'),
    				'mainpic'=>$propic,
    				'category_id'=>I('post.category_id'),
    		);
    		
    		//保存数据到数据库
    		$proid=$this->proModel->add($product_post);
    		
    		if($proid>0){
    			//join() 函数把数组元素组合为一个字符串。join() 函数是 implode() 函数的别名。
    			$perid=join('|',I('post.property'));   //把属性的id通过|来连接成字符串，然后保存在per中 
    			$product_per=array(
    					'proid'=>$proid,          //产品id号 
    					'perid'=>$perid,          //属性id集
    					'reper'=>I('post.reper')  //库存
    			);
    			$proper=M('product_per')->add($product_per);  //插入产品库存
    			
    			
    			$desid=M('product_des')->add(array('product_id'=>$proid,'des'=>$prodes));  //插入编辑内容 
    		}
    		if($desid>0){
    			$this->success("产品添加成功");
    			exit;
    		}
    		else{
    			$this->success("产品添加失败");
    			exit;
    		}
    		
    	}
    	
   		
    	
    	$proper=M('property');   //实例化商品属性，
    	$topArray=$proper->where('parent_id=0')->select();  //pid=0的
    	$subArray=$proper->where('parent_id>0')->select();
    	
    	$this->assign("topProjson",json_encode($topArray));    
    	
    	foreach($topArray as $topkey=>$topval){
    		foreach ($subArray as $subkey=>$subval){
    			if($topval['id']==$subval['parent_id']){     
    				$topArray[$topkey]['subper'][]=$subval;    //循环二级的类别，并保存在二维数组里，形式如$topArray[$topkey]['subper']
    			}
    		}
    	}
    	//print_r($topArray);exit;
    	
    	
    	$cateArray=$this->cateMode->getCategory();//循环分类出来
    	$brand=M("brand")->select();			  //循环品牌信息
    	$this->assign("topArray",$topArray);
    	$this->assign("cateArray",$cateArray);
    	$this->assign("brandArray",$brand);
    	$this->view("addproduct");
    }
    
    
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
	
	
	/**
     * 商品分类------
     * Enter description here ...
     */
  	public function category(){
  		$cateArray=$this->cateMode->getCategory();//使用自己写的model里的getCategory方法，得到商品分类数据 
  		$this->assign('cateArray',$cateArray);
  		$this->view('category');
  	}
	/**
     * 商品分类操作------
     * Enter description here ...
     */
    public function doaction()
    {
    	if(IS_AJAX){
	    	if(I("get.do")=='update'){//----------修改----------get方式获取do的值，在url里获取的都是get方式
		    	$res=$this->cateMode->save($_POST);//通过save方法保存数据到数据库
	    		$this->ajaxReturn($_POST);//通过ajaxReturn方法返回ajax数据
	    	}
	    	else if(I("get.do")=='delete')//---------删除----------get方式获取do的值，在url里获取的都是get方式
	    	{
	    		$delArray=$this->cateMode->getCategory(I('get.cateid'));
	    		$delidArray=array();
	    		foreach ($delArray as $delidvalue)
	    		{
	    			$delidArray[]=$delidvalue['id'];
	    		}
	    		$delidArray[]=I('get.cateid');
	    		$delidStr=join(",", $delidArray);
	    		$delid=$this->cateMode->delete($delidStr);//通过delete方法删除数据库的数据
	    		echo $delid;
	    		exit;
	    	}
	    	else if(I("get.do")=='add'){//----------添加---------get方式获取do的值，在url里获取的都是get方式
	    		$rule=array();
				$condition=$this->cateMode->validate($rule)->create(); //validate用于数据自动验证           create创建数据对象
	    		//$this->cateMode->create();
	    		$addcateId=$this->cateMode->add($_POST);//通过add方法添加数据到数据库
	    		echo $addcateId;
	    		exit;
	    	}
    	}
    }
  	
  /*测试jq弹窗
	public function category1(){
  		$this->display('category1');
  	}
  	*/
  	
  	
  	
  	
	

    /**
     * 属性列表
     * Enter description here ...
     */
	public  function property()
    {
    	$proMode=D("property");
    	$cateArray=$proMode->getCategory();
    	$this->assign("cateArray",$cateArray);
    	
    	$this->view();
    }
    /**
     * 属性操作
     * Enter description here ...
     */
    public function propertu(){
    
    	$proMode=D("property");
	    if(IS_AJAX){
		    	if(I("get.do")=='update'){
			    	$res=$proMode->save($_POST);
		    		$this->ajaxReturn($_POST);
		    	}
		    	else if(I("get.do")=='delete')
		    	{
		    		$delArray=$proMode->getCategory(I('get.cateid'));
		    		$delidArray=array();
		    		foreach ($delArray as $delidvalue)
		    		{
		    			$delidArray[]=$delidvalue['id'];
		    		}
		    		$delidArray[]=I('get.cateid');
		    		$delidStr=join(",", $delidArray);
		    		$delid=$proMode->delete($delidStr);
		    		echo $delid;
		    		exit;
		    	}
		    	else if(I("get.do")=='add'){
		    		$addcateId=$proMode->add($_POST);
		    		echo $addcateId;
		    		exit;
		    	}
	    	}
    }
    
    
    
    
    
    
    
    
	/**
     * 品牌操作
     * Enter description here ...
     */
    public function brand(){
    	$brandMode=M("brand");
    	if(IS_AJAX){
    	if(I("get.do")=='update'){
		    	$res=$brandMode->save($_POST);
	    		$this->ajaxReturn($_POST);
	    	}
	    	else if(I("get.do")=='delete')
	    	{
	    		
	    		$delid=$brandMode->delete(I('get.brandid'));
	    		echo $delid;
	    		exit;
	    	}
	    	else if(I("get.do")=='add'){
	    		$addcateId=$brandMode->add($_POST);
	    		echo $addcateId;
	    		exit;
	    	}
    	
    	}
    	$brandArray=$brandMode->select();
    	$this->assign("cateArray",$brandArray);
    	$this->view();
    }
    
  	
  	
}